import { createApp } from 'vue'
import './style.css'
import App from './App.vue'

// 动态 import，生产环境不加载

let mockPromise = Promise.resolve();
let dayjsPromise = Promise.resolve();

// import dayjs from 'dayjs'
// import relativeTime from 'dayjs/plugin/relativeTime'
// import 'dayjs/locale/zh-cn'
// dayjs.extend(relativeTime)
// dayjs.locale('zh-cn')

if (import.meta.env.DEV) {
  // 开发环境：使用 import
  mockPromise = import('./mock').then(({ default: initMock }) => initMock());
  dayjsPromise = import('dayjs').then(async ({ default: dayjs }) => {
    // 1. 先加载插件
    const { default: relativeTime } = await import('dayjs/plugin/relativeTime');
    dayjs.extend(relativeTime);

    // 2. 再加载语言包
    await import('dayjs/locale/zh-cn');
    dayjs.locale('zh-cn');

    return dayjs; // 返回已配置好的实例
  });
} else {
  // 生产环境：使用 CDN 全局变量
  if (window.dayjs && window.dayjs_plugin_relativeTime) {
    window.dayjs.extend(window.dayjs_plugin_relativeTime)
    window.dayjs.locale('zh-cn')
  }
}

const app = createApp(App)

// 等待 mock、dayjs 初始化完成后再挂载应用
Promise.all([mockPromise, dayjsPromise]).then(() => {
  console.log("mountApp");
  app.mount('#app');
});